<rd-header>
  <rd-header-title title="Stack details">
    <a data-toggle="tooltip" title="Refresh" ui-sref="stack({id: stack.Id})" ui-sref-opts="{reload: true}">
      <i class="fa fa-refresh" aria-hidden="true"></i>
    </a>
  </rd-header-title>
  <rd-header-content>
    <a ui-sref="stacks">Stacks</a> > <a ui-sref="stack({id: stack.Id})">{{ stack.Name }}</a>
  </rd-header-content>
</rd-header>

<!-- access-control-panel -->
<por-access-control-panel
  ng-if="stack && applicationState.application.authentication"
  resource-id="stack.Name"
  resource-control="stack.ResourceControl"
  resource-type="'stack'">
</por-access-control-panel>
<!-- !access-control-panel -->

<div class="row">
  <div class="col-sm-12">
    <stack-services-datatable
      title="Services" title-icon="fa-list-alt"
      dataset="services" table-key="stack-services"
      order-by="Name"
      nodes="nodes"
      public-url="state.publicURL"
      show-text-filter="true"
    ></stack-services-datatable>
  </div>
</div>

<div class="row">
  <div class="col-sm-12">
    <tasks-datatable
      title="Tasks" title-icon="fa-tasks"
      dataset="tasks" table-key="stack-tasks"
      order-by="Updated" reverse-order="true"
      nodes="nodes"
      show-text-filter="true"
      show-slot-column="true"
    ></tasks-datatable>
  </div>
</div>

<div class="row" ng-if="stackFileContent">
  <div class="col-sm-12">
    <rd-widget>
      <rd-widget-header icon="fa-pencil" title="Stack editor"></rd-widget-header>
      <rd-widget-body>
        <form class="form-horizontal">
          <div class="form-group">
            <span class="col-sm-12 text-muted small">
              You can get more information about Compose file format in the <a href="https://docs.docker.com/compose/compose-file/" target="_blank">official documentation</a>.
            </span>
          </div>
          <div class="form-group">
            <div class="col-sm-12">
              <textarea id="web-editor" class="form-control" ng-model="stackFileContent" placeholder='version: "3"'></textarea>
            </div>
          </div>
          <div class="col-sm-12 form-section-title">
            Environment
          </div>
          <!-- environment-variables -->
          <div class="form-group">
            <div class="col-sm-12" style="margin-top: 5px;">
              <label class="control-label text-left">Environment variables</label>
              <span class="label label-default interactive" style="margin-left: 10px;" ng-click="addEnvironmentVariable()">
                <i class="fa fa-plus-circle" aria-hidden="true"></i> add environment variable
              </span>
            </div>
            <!-- environment-variable-input-list -->
            <div class="col-sm-12 form-inline" style="margin-top: 10px;">
              <div ng-repeat="variable in stack.Env" style="margin-top: 2px;">
                <div class="input-group col-sm-5 input-group-sm">
                  <span class="input-group-addon">name</span>
                  <input type="text" class="form-control" ng-model="variable.name" placeholder="e.g. FOO">
                </div>
                <div class="input-group col-sm-5 input-group-sm">
                  <span class="input-group-addon">value</span>
                  <input type="text" class="form-control" ng-model="variable.value" placeholder="e.g. bar">
                </div>
                <button class="btn btn-sm btn-danger" type="button" ng-click="removeEnvironmentVariable($index)">
                  <i class="fa fa-trash" aria-hidden="true"></i>
                </button>
              </div>
            </div>
            <!-- !environment-variable-input-list -->
          </div>
          <!-- !environment-variables -->
          <!-- options -->
          <div class="col-sm-12 form-section-title" ng-if="applicationState.endpoint.apiVersion >= 1.27">
          Options
          </div>
          <div class="form-group" ng-if="applicationState.endpoint.apiVersion >= 1.27">
            <div class="col-sm-12">
              <label for="prune" class="control-label text-left">
                Prune services
                <portainer-tooltip position="bottom" message="Prune services that are no longer referenced."></portainer-tooltip>
              </label>
              <label class="switch" style="margin-left: 20px;">
                <input name="prune" type="checkbox" ng-model="formValues.Prune"><i></i>
              </label>
            </div>
          </div>
          <!-- !options -->
          <div class="col-sm-12 form-section-title">
            Actions
          </div>
          <div class="form-group">
            <div class="col-sm-12">
              <button type="button" class="btn btn-sm btn-primary" ng-disabled="state.actionInProgress" ng-click="deployStack()" button-spinner="state.actionInProgress">
                <span ng-hide="state.actionInProgress">Update the stack</span>
                <span ng-show="state.actionInProgress">Deployment in progress...</span>
              </button>
            </div>
          </div>
        </form>
      </rd-widget-body>
    </rd-widget>
  </div>
</div>
